/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.eventos.beans;

import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
import org.cip.esymons.eventos.bc.UnidadMedidaDelegate;
import org.cip.esymons.eventos.be.UnidadMedida;

/**
 *
 * @author lizardo
 */
public class UnidadMedidaController {
    UnidadMedidaDelegate delegate;
    private UnidadMedida um;
    private List<UnidadMedida> listaUnidades;

    public UnidadMedidaController() {
        delegate = new UnidadMedidaDelegate();
        um = new UnidadMedida();
        listaUnidades = new ArrayList<UnidadMedida>();
        listar();
    }

    public String guardar() {
        delegate.guardar(getUm());
        cancelar();
        return "OK";
    }

    public UnidadMedidaDelegate getDelegate() {
        return delegate;
    }

    public String actualizar() {
        delegate.actualizar(getUm());
        return "OK";
    }

    public String eliminar() {
        um.setUmeEstado(false);
        delegate.actualizar(um);
        listar();
        return "OK";
    }

    public String listar() {
        listaUnidades = delegate.listar_Todos();
        return "listar";
    }

    public String cancelar() {
        um = new UnidadMedida();
        return "OK";
    }


    public String reset() {
        try {
            um = delegate.buscarUnidadMedida(um.getUmeCodigo());
        } catch (Exception ex) {

        }
        return "OK";
    }
    
    public UnidadMedida getUm() {
        return um;
    }

    public void setUm(UnidadMedida um) {
        this.um = um;
    }

    public List<UnidadMedida> getListaUnidades() {
        return listaUnidades;
    }

    public void setListaUnidades(List<UnidadMedida> listaUnidades) {
        this.listaUnidades = listaUnidades;
    }

    public String navegar_nuevo() {
        return "nuevo";
    }

    public String navegar_editar() {
        return "editar";
    }

    public SelectItem[] getComboUnidadMedida() {
       //Combo de Ambientes lista todos los ambientes
        try {
            listaUnidades = new ArrayList<UnidadMedida>();
            listaUnidades = delegate.listar_Todos();
            SelectItem[] comboUnidadMedida;
            if(listaUnidades.size()>0){
               comboUnidadMedida  = new SelectItem[listaUnidades.size()];
            for (int i = 0; i < listaUnidades.size(); i++) {
                comboUnidadMedida[i] = new SelectItem(listaUnidades.get(i), listaUnidades.get(i).getUmeDescripcion());
            }
            }else{
                comboUnidadMedida=new SelectItem[1];
                comboUnidadMedida[0]=new SelectItem(new UnidadMedida(), "No hay Unidad de Medida registrada");
            }

            return comboUnidadMedida;

        } catch (Exception e) {
            //Mensaje al usuario
            listaUnidades = new ArrayList<UnidadMedida>();
            SelectItem[] comboUnidadMedida = new SelectItem[1];
            comboUnidadMedida[0] = new SelectItem(new UnidadMedida(), "No hay Unidad de Medida");
            return comboUnidadMedida;
        }
    }

}
